import java.io.*;

/** Sauvegarde d'une image de CD
  *
  * @author     Nemesis (nemesis_tt@yahoo.fr)
  * @version    27/07/04
  */

public class Sauvegarde extends Thread {

// Variable et constantes
// ----------------------
    private String source;
    
    private static boolean stop = false;
    private static boolean pause = false;
    
// Constructeur
// ------------
    public Sauvegarde(String source_) {
        super();
        
        source = source_;
    }
    
// Exécution
// ---------
    public void run()
    { 
        Logueur.loguer_titre("Sauvegarde de l'image CD en cours");
        try {
            BufferedInputStream in_f = new BufferedInputStream(new FileInputStream(source));
            BufferedOutputStream out_f = new BufferedOutputStream(new FileOutputStream(source + "bak"));
            // Copie des données
            long l = new File(source).length();
            for(long i=0; i<l; i++)
                out_f.write(in_f.read());
            // Fermeture
            out_f.flush();
            out_f.close();
            in_f.close();
        } catch (Exception e) {
            Logueur.loguer(this,Logueur.ERROR_ISO);
        }
    }
    
    /** Chaine équivalente */
    public String toString() {
        return ("Sauvegarde de " + source);
    }
    
// Attente
// -------
    public void attendre() {
        try {
            join();
        } catch (Exception e) {};
    }

// Terminaison
// -----------
    public void termine() {
        pause = false;
        stop = true;
        attendre();
    }

}
